package com.sergio.compress.dao.model;

import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * @Author : Sergio.D
 * @Description :
 * @CreateDate ：2023/6/15 11:05
 */
@Data
@Accessors(chain = true)
@Document(collection = "se_record_")
public class SeTestRecord extends CpTestRecord {
    //数据个数
    Integer infoLength;

    //源数据长度
    long lengthSource;

    //序列化类型
    String channelType;

    //序列化耗时
    Long costTimeSe;
    //反序列化耗时
    Long costTimeDse;

    Integer seRate;

    Boolean resultSe;

    public SeTestRecord makeSeRate() {
//        小数点后保留6位
        this.seRate = (int) (1000000 * (double) this.lengthSe / this.lengthSource);
        return this;
    }

    public SeTestRecord mixCpResult(CpTestRecord cpTestRecord) {
        SeTestRecord seTestRecord = new SeTestRecord()
                .setInfoLength(this.getInfoLength())
                .setLengthSource(this.getLengthSource())
                .setChannelType(this.getChannelType())
                .setCostTimeSe(this.getCostTimeSe())
                .setCostTimeDse(this.getCostTimeDse())
                .setSeRate(this.getSeRate())
                .setResultSe(this.getResultSe());

        seTestRecord.setLengthSe(cpTestRecord.getLengthSe());
        seTestRecord.setType(cpTestRecord.getType());
        seTestRecord.setLengthCp(cpTestRecord.getLengthCp());
        seTestRecord.setCpRate(cpTestRecord.getCpRate());
        seTestRecord.setCostTimeCp(cpTestRecord.getCostTimeCp());
        seTestRecord.setCostTimeDcp(cpTestRecord.getCostTimeDcp());
        seTestRecord.setResultCp(cpTestRecord.getResultCp());
        return seTestRecord;
    }


//    @Id
//    private String id;
//    //源文件数组长度
//    Long lengthSe;
//
//    //压缩类型
//    String type;
//
//    //压缩后长度
//    Long lengthCp;
//
//    Integer cpRate;
//    //压缩时间
//    Long costTimeCp;
//    //解压时间
//    Long costTimeDcp;
//
//    //压缩结果
//    Boolean result;
//
//    //创建时间
//    Date time;
//
//    public DataTest makeCpRate() {
////        小数点后保留6位
//        this.cpRate = (int) (1000000 * (double) this.lengthCp / this.lengthSe);
//        return this;
//    }
}
